import re

word_dict = {}
res_dict = {}

# 方法一
with open("sample.txt", encoding="utf8") as file:
    line = file.read()
    for word in line.split(" "):  
        if word_dict.get(word):
            word_dict[word] = word_dict.get(word) + 1  # 这里可以改成 word_dict[word] += 1，效率更高。
        else:
            word_dict[word] = 1

sorted_lst = sorted(word_dict, key=lambda x: word_dict.get(x), reverse=True)

for i in range(10):
    res_dict[sorted_lst[i]] = word_dict.get(sorted_lst[i])

# top10
print("方法一：", res_dict)

# 方法二
word_dict2 = {}
res_dict2 = {}
with open("sample.txt", encoding="utf8") as file:
    context = file.read()
    regx = re.compile("[a-zA-Z]+")
    for word in regx.findall(context):
        if word_dict2.get(word):
            word_dict2[word] = word_dict2.get(word) + 1 # 这里可以改成 word_dict[word] += 1，效率更高。
        else:
            word_dict2[word] = 1

sorted_lst2 = sorted(word_dict2, key=lambda x: word_dict2.get(x), reverse=True)

for i in range(10):
    res_dict2[sorted_lst2[i]] = word_dict2.get(sorted_lst2[i])

# top10
print("方法二：", res_dict2)

# 第二种方法的思路是对的，而且很好，第一种方法存在一些问题。例如，当你的单词在结尾的地方，有标点符号的情况，有换行符的情况，
# 都没有考虑到。